昨天講到資料庫,那今天繼續資料庫的相關
主要會研究到:遮罩
、稽核
、加密
動態資料遮罩 (DDM) 會對不具權限
的使用者遮罩機密資料,從而限制其曝光
注意並非將資料加密處理
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH(FUNCTION = '類型');
GO
使用預設資料型態取代
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION = 'default()')
GO
XXXX
0000
01.01.1900 00:00:00.0000000
單一位元組的 ASCII 值 0
只顯示第一個字元和常數後置詞 ".com"。
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION = 'email()')
GO
指定範圍內隨機的值遮罩原始值
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH(FUNCTION = 'random(最小值, 最大值)')
GO
自訂遮罩字串
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
ADD MASKED WITH (FUNCTION = 'partial(顯示前位數,"字串",顯示後位數)')
GO
適用:SQL Server 2022 (16.x) Preview
遮罩時間
資料型態的資料
ALTER TABLE 表格名稱 ALTER COLUMN 欄位
WITH (FUNCTION = 'datetime("日期格式")')
GO
SQL Server內建擁有,利用SQL Server Audit
追蹤資料庫管理動作,將資料庫的行為記錄轉製為稽核報表
相關的實作可以參考SQL Server 資料庫稽核設定
相關的實作過程,可以參考這位前輩大大的文章連結
由於這篇為2016年的文章,在官網ENCRYPTBYPASSPHRASE (Transact-SQL)有說明SQL Server 2017 和更新版本會使用 AES256 金鑰以複雜密碼加密資料
DECLARE @Key nvarchar(128);
SET @Key = 'ASDFGZXCV';
--加密
DECLARE @ciphertext varbinary(max)
= EncryptByPassPhrase(@Key, '123455678ABCDE')
SELECT @ciphertext
--解密
DECLARE @plainttext varchar(16)
= CONVERT(varchar(16),DecryptByPassphrase(@Key, @ciphertext))
SELECT @plainttext
由於簡單加密函數
的金鑰存在程式碼裡面,很容易被發現,或者被偷取
以下同事提供的,感謝他的提供
如果有任何錯誤的地方歡迎提出。
可以觀看我們團隊的鐵人發文喔~